"""
在柠檬水摊上，每一杯柠檬水的售价为5美元。顾客排队购买你的产品，（按账单 bills 支付的顺序）一次购买一杯。
每位顾客只买一杯柠檬水，然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零，也就是说净交易是每位顾客向你支付 5 美元。
注意，一开始你手头没有任何零钱。
给你一个整数数组 bills ，其中 bills[i] 是第 i 位顾客付的账。如果你能给每位顾客正确找零，返回true，否则返回 false.
"""
def lemonadeChange(bills):
    # 二十美元可以用十美元或者五美元来找零
    a = 0  # 五美元
    b = 0  # 十美元
    for i in bills:
        if i == 5:
            a += 1
        elif i == 10:
            a -= 1
            b += 1
        elif b: # 如果有十美元的，则找零一个十和一个五
            b -= 1
            a -= 1
        else:  # 如果没有，则找零三个五
            b -= 3
        if a < 0:
            return False
    return True